/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.mybeans;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author avbravo
 */
public class UsuariosBeans {

    Sesion sesion;
    private String username;
    private String password;
    private String usuario;
    private String idmunicipio;
    private String email;
    private String telefono;
    private String celular;
    private String activo;
    private String idgrupousuario;
    private String cedula;
    static List<String> ListaNombre = new ArrayList<String>();
    static List<String> ListaUserName = new ArrayList<String>();
    //vehiculos que posee
    static private int NumeroRegistrosLista = -1;

    public static List<String> getListaUserName() {
        return ListaUserName;
    }

    public static void setListaUserName(List<String> ListaUserName) {
        UsuariosBeans.ListaUserName = ListaUserName;
    }

    public static List<String> getListaNombre() {
        return ListaNombre;
    }

    public static void setListaNombre(List<String> ListaNombre) {
        UsuariosBeans.ListaNombre = ListaNombre;
    }

    public static int getNumeroRegistrosLista() {
        return NumeroRegistrosLista;
    }

    public static void setNumeroRegistrosLista(int NumeroRegistrosLista) {
        UsuariosBeans.NumeroRegistrosLista = NumeroRegistrosLista;
    }

    public UsuariosBeans() {
        sesion = new Sesion();
    }

    public String getActivo() {
        return activo;
    }

    public String getCedula() {
        return cedula;
    }

    public String getCelular() {
        return celular;
    }

    public String getEmail() {
        return email;
    }

    public String getIdgrupousuario() {
        return idgrupousuario;
    }

    public String getIdmunicipio() {
        return idmunicipio;
    }

    public String getPassword() {
        return password;
    }

    public String getTelefono() {
        return telefono;
    }

    public String getUsername() {
        return username;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setActivo(String activo) {
        this.activo = activo;
    }

    public void setCedula(String cedula) {
        this.cedula = cedula;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setIdgrupousuario(String idgrupousuario) {
        this.idgrupousuario = idgrupousuario;
    }

    public void setIdmunicipio(String idmunicipio) {
        this.idmunicipio = idmunicipio;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setSesion(Sesion sesion) {
        this.sesion = sesion;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    
    public boolean ConsultarSinMensaje(String sql) {

        try {

            if (sql == null || sql.equals("")) {
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            PreparedStatement psquery = sesion.con.prepareStatement(sql);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                sesion.con.close();
                return false;
            }


            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Clase:UsuariosBeans.java\nMetodo:ConsultarSinMensajes()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public boolean Consultar() {

        try {

            String sql = "select * from usuarios where idmunicipio ='" + sesion.getIdmunicipio() + "' and username ='" + this.username + "'";
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            PreparedStatement psquery = sesion.con.prepareStatement(sql);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                sesion.con.close();
                return false;
            } else {
                usuario = rs.getString("usuario");
                email = rs.getString("email");
                telefono = rs.getString("telefono");
                celular = rs.getString("celular");


                activo = rs.getString("activo");
                idgrupousuario = rs.getString("idgrupousuario");
                cedula = rs.getString("cedula");
                if (activo.equals("no")){
                    JOptionPane.showMessageDialog(null, "Este usuario esta inactivo\nPresione el boton actualizar para activarlo.", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                }

            }


            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Clase:UsuariosBeans.java\nMetodo:ConsultarSinMensajes()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    /*
     * Cargar Listado de usuarios
     *
     */
    public boolean CargarListadoUsuarios(String sql) {
        try {
            NumeroRegistrosLista = -1;
            ListaNombre.removeAll(ListaNombre);
            ListaUserName.removeAll(ListaUserName);
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = sql;
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                JOptionPane.showMessageDialog(null, "No existen registros de usuarios", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }

            ListaNombre.add(rs.getString("usuario"));
            ListaUserName.add(rs.getString("username"));
            NumeroRegistrosLista++;

            while (rs.next()) {
                ListaNombre.add(rs.getString("usuario"));
                ListaUserName.add(rs.getString("username"));
                NumeroRegistrosLista++;

            }


            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "UsuariosBeans.java\nMetodo CargarListadoUsuarios()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);

        }

        return false;
    }
}
